package com.hapzxb.thread.pool;

/**
 * @author hhh
 * @date 2021-05-18 08:55
 */
public interface ThreadPool<Job extends Runnable> {

    /**
     * 执行一个job ，这个job需要实现Runnable
     *
     * @param job
     */
    void execute(Job job);

    /**
     * 关闭线程池
     */
    void shutdown();

    /**
     * 增加 工作者数量
     *
     * @param num
     */
    void addWorkers(int num);

    /**
     * 减少 工作者数量
     *
     * @param num
     */
    void removeWorkers(int num);

    /**
     * 得到正在等待执行任务的数量
     *
     * @return
     */
    int getJobSize();

}
